/*
 *  Copyright (c) 2018-2028, Chill Zhuang All rights reserved.
 *
 *  Redistribution and use in source and binary forms, with or without
 *  modification, are permitted provided that the following conditions are met:
 *
 *  Redistributions of source code must retain the above copyright notice,
 *  this list of conditions and the following disclaimer.
 *  Redistributions in binary form must reproduce the above copyright
 *  notice, this list of conditions and the following disclaimer in the
 *  documentation and/or other materials provided with the distribution.
 *  Neither the name of the dreamlu.net developer nor the names of its
 *  contributors may be used to endorse or promote products derived from
 *  this software without specific prior written permission.
 *  Author: Chill 庄骞 (smallchill@163.com)
 */
package com.plian.system.entity.yth.stafffiles;

import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.fasterxml.jackson.databind.ser.std.NullSerializer;
import com.plian.system.entity.yth.YthBaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.time.LocalDate;

/**
 * 人事——员工档案-入职信息实体类
 *
 * @author zke
 * @since 2023-02-10
 */
@Data
@TableName("personnel_person_staff_post")
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "PersonStaffPost对象", description = "人事——员工档案-入职信息")
public class PersonStaffPost extends YthBaseEntity {

    private static final long serialVersionUID = 1L;
    /**
     * 用户id
     */
    @ApiModelProperty(value = "用户id")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Long userId;
    /**
     * 人员id
     */
    @ApiModelProperty(value = "人员id")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Long personId;
    /**
     * 人员编号
     */
    @ApiModelProperty(value = "人员编号")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private String code;
    /**
     * 入职单位id
     */
    @ApiModelProperty(value = "入职单位id")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Long companyId;
    /**
     * 入职部门id
     */
    @ApiModelProperty(value = "入职部门id")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Long deptId;
    /**
     * 职务id
     */
    @ApiModelProperty(value = "职务id")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Long postId;

    /**
     * 入职单位名称
     */
    @ApiModelProperty(value = "入职单位名称")
    private String companyName;
    /**
     * 入职部门名称
     */
    @ApiModelProperty(value = "入职部门名称")
    private String deptName;
    /**
     * 职务名称
     */
    @ApiModelProperty(value = "职务名称")
    private String postName;
    /**
     * 入职单位日期
     */
    @ApiModelProperty(value = "入职单位日期")
    private LocalDate entryDate;
    /**
     * 管理级别
     */
    @ApiModelProperty(value = "管理级别")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Integer manageLevel;
    /**
     * 编制类型
     */
    @ApiModelProperty(value = "编制类型")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Integer establishmentCategory;
    /**
     * 职级
     */
    @ApiModelProperty(value = "职级")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Integer postLevel;
    /**
     * 岗位职责
     */
    @ApiModelProperty(value = "岗位职责")
    private String postDuty;
    /**
     * 是否同级党委管理干部
     */
    @ApiModelProperty(value = " 是否同级党委管理干部")
    private Integer isManage;
    /**
     * 异动事件
     */
    @ApiModelProperty(value = "异动事件")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Integer changeEvent;
    /**
     * 异动类型
     */
    @ApiModelProperty(value = "异动类型")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Integer changeCategory;
    /**
     * 异动原因
     */
    @ApiModelProperty(value = "异动原因")
    private String changeReason;
    /**
     * 异动时间
     */
    @ApiModelProperty(value = "异动时间")
    private LocalDate changeDate;
    /**
     * 人才类别
     */
    @ApiModelProperty(value = "人才类别")
    private String telantType;
    /**
     * 熟悉专业有何专长
     */
    @ApiModelProperty(value = "熟悉专业有何专长")
    private String expertise;
    /**
     * 合同期限
     */
    @ApiModelProperty(value = "合同期限")
    private LocalDate contractPeriodDate;
    /**
     * 后备干部
     */
    @ApiModelProperty(value = "后备干部")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Integer reserveCadres;
    /**
     * 企业人才
     */
    @ApiModelProperty(value = "企业人才")
    @JsonSerialize(nullsUsing = NullSerializer.class)
    private Integer enterpriseTalent;
    /**
     * 工作经历
     */
    @ApiModelProperty(value = "工作经历")
    private String workExperience;
    /**
     * 备注
     */
    @ApiModelProperty(value = "备注")
    private String remark;


}
